#ifndef AT_NETWORK_HTTP_AIR780E_h
#define AT_NETWORK_HTTP_AIR780E_h

#include "extend/AtNetworkHttp.h"

class AtNetworkHttpAir780E : public AtNetworkHttp {

  public:
    AtNetworkHttpAir780E(AtNetworkDevice *device)
        : AtNetworkHttp(device) {
    }
    
    /**
     * 发起GET请求(需要手动调用lock)
     * @param fun 请求回调接口
     * @param 请求地址
     * @param timeout 超时时长
     */
    virtual size_t get(HttpCallback fun, char *url, uint32_t timeout = 10000);

    /**
     * 发送POST请求(需要手动调用lock)
     * @param fun     回调函数
     * @param url     请求地址
     * @param body    请求内容
     * @param timeout 超时时长
     *
     */
    virtual size_t post(HttpCallback fun, char *url, char *body, uint32_t timeout = 10000);

  protected:
    /**
     * 请求前置操作
     */
    size_t executeRequest(HttpCallback fun, char *url);

    /**
     * 响应内容读取与回调
     */
    size_t executeResponse(HttpCallback fun, char *url);
};

#endif